<div class="question">
  <p>
    感谢大家长期以来的支持和鼓励。不管你有什么问题都可以在github项目
    <a href="https://github.com/greengerong/rebirth-question/issues" target="_blank">rebirth-question</a>的issue中提出。
    博主在空闲时候将会为大家解答。同时也欢迎其他同学帮助解答。
  </p>
  <p>
    如果你有问题，请移步到github项目rebirth-question(<a href="https://github.com/greengerong/rebirth-question/issues"
                                           target="_blank">https://github.com/greengerong/rebirth-question/issues</a>)
  </p>
  <section class="last-posts">
    <h3 class="article-title">近30天问题：</h3>
    {{questions | json}}
    <table  *ngIf="questions&&questions.length "class="table table-striped">
      <tbody>
      <tr *ngFor="let questionItem of questions; let questionIndex = index;">
        <td class="question-item-order">{{questionIndex + 1}}</td>
        <td class="question-item-avatar">
          <a [href]="questionItem?.user?.html_url" target="blank">
            <img class="avatar" [src]="questionItem?.user?.avatar_url" [alt]="questionItem?.user?.login">
          </a>
        </td>
        <td class="question-item-title">
          <a [href]="questionItem.html_url" target="_blank">{{questionItem.title}}</a>
          <ul class="list-inline">
            <li *ngFor="let label of questionItem?.labels" class="label label-primary"
                [style.background]="'#'+label.color">{{label.name}}
            </li>
          </ul>
        </td>
      </tr>
      </tbody>
    </table>
  </section>
  <section class="smart-question">
    <p>以下内容摘自<a href="http://item.jd.com/10099349781.html" target="_blank">《AngularJS深度剖析与最佳实践》</a>一书最后附录最后一刻内容，希望它能为大家解决问题或提问给予一些帮助。
    </p>
    <h3 class="article-title">提问的智慧</h3>

    <p>把这章放在最后，绝不是因为它不重要，相反，最后一课往往是最重要的。这本书再好，也只能帮你一时，而这一章将帮你一世 —— <br> 不限于Angular、不限于编程，甚至不限于软件领域。
    </p>

    <p>十七年前，我成为软件工程师，但直到十二年前我才敢自认为“真正的软件工程师” —— 那时候，我看到了一篇《提问的智慧》。其原作者是国外的两位著名黑客Eric S. Raymond和Rick
      Moen。如今，它已经被译成了17国文字。</p>

    <p>虽然原作者放弃了版权，但我不会原文摘引，而是结合过去的经历谈谈我的体会。</p>

    <p>想看原文的请到这里：<a href="https://github.com/FredWe/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md">https://github.com/FredWe/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md</a>。原文很尖锐，做好心理准备之前还是先看我这篇吧
      —— 虽然也温柔不了多少……</p>


    <h3 id="什么是黑客">什么是黑客？</h3>

    <p>黑客一词已经被用烂了。在电影中，黑客常常被塑造成追求自由、技术高超但愤世嫉俗的形象，甚至有时候还被当做高科技小偷儿或侠盗。 <br>
      其实在我看来，黑客就是个“技术极客”：喜欢迎接挑战、喜欢解决别人解决不了的问题，做自己喜欢的事，顺手改变世界。这就是我心中的黑客精神。
    </p>


    <h3 id="黑客喜欢帮助新手但懒汉除外">黑客喜欢帮助新手，但懒汉除外！</h3>

    <p>每一个黑客都是从新手成长来的，特别是在开源文化大行于世的时代。真正的黑客不会排斥新手，因为每个新手都可能是他们“顺手改变世界”的机遇。</p>

    <p>但黑客讨厌懒汉，这种懒汉不是指连租个房都要用大数据技术作分析的那种黑客型“懒”人，而是指懒于把问题说清楚，却想让黑客扮演上帝或奶妈的那种懒汉。</p>

    <p>这样的人改变不了世界，黑客也不愿意在他身上浪费时间。任何人，一旦被黑客认定是这样的“懒汉”，必将成为他黑名单中的一员。</p>

    <p>记住：自助者天助之。黑客只会喜欢有上进心的新手。</p>


    <h3 id="十秒钟就能解决的问题要花十分钟问清楚我不干">十秒钟就能解决的问题，要花十分钟问清楚？我不干！</h3>

    <p>要记住，黑客可不是整天无所事事，游手好闲的人。他们可能是开源运动的领袖，可能是大公司的技术骨干，可能是小公司的CTO，也可能正是你顶头上司的马甲 —— 大多数新手都没他们忙。</p>

    <p>他们上网查看问题，是因为寻找挑战和提升水平的机会。所以，描述清楚问题是吸引黑客注意的第一步。 <br>
      想想看，一个本来十秒钟就能解决的问题，却要花十分钟把问题问清楚，你还会有兴趣去解决吗？黑客更是如此。就算帮你解决了，你也离他的黑名单不远了。
    </p>


    <h3 id="黑客搜ionic">黑客：“搜‘ionic’！”</h3>

    <p>在Google时代，很多问题不是没法解决，而是不知道关键字，黑客更是深谙此道。 <br> 真正的黑客不会把什么都记在脑子里，作为极客，他们会尽可能把属性点加到CPU和软件上，而不是内存里。 <br>
      所以，当黑客告诉你“搜xxx”的时候，别以为这位不耐烦的黑客在歧视新手或者不负责任，这是在教你打鱼的技术，比答案可珍贵多了！ <br>
      当然，等到他对你连说十次搜同一个关键字的时候，你已经离他的黑名单不远了。“上进的新手”的特征之一就是会举一反三。
    </p>


    <h3 id="什么样的问题是好问题">什么样的问题是好问题？</h3>

    <p>如果觉得黑客已经了解此问题的背景知识（比如他知道你在使用什么框架和语言），那么请节省时间，直入主题：</p>

    <ul>
      <li>描述出现的错误（包括但不限于外观异常、错误日志、控制台输出等）</li>
      <li>描述你的预期结果</li>
      <li>描述你已经尝试过的失败</li>
      <li>描述你查过的关键字</li>
    </ul>

    <p>并且，要注意第一时间回答黑客的提问，不要自己一个劲说个不停。</p>

    <p>如果你认为黑客没有足够的背景知识，那么先用尽量简短的语言描述下背景（比如正在使用某个生僻的框架），问问对方是否对此感兴趣，然后再描述问题，并且在必要时对生僻框架的某些特性加以解释。</p>

    <p>另外，先了解下所在的场合也是必要的，在Ruby论坛问C++问题或反之，基本上都属于“自找抽”的行为。</p>


    <h3 id="活问题胜过死问题">“活问题”胜过“死问题”</h3>

    <p>所谓“活问题”，是指能让对方直接开始调试的问题；而“死问题”是指对方要通过一系列操作搭建完环境才能进行调试的问题。</p>

    <p>在前端编程的领域中，jsbin.com，jsfiddle.net，codepen.io等网站就是提出“活问题”的首选方式。 <br>
      在上面做一个能重现问题的最小化工程，然后分享给对方，可以大大提高解决问题的效率，更会给人留下“这是个聪明勤快又专业的新手”的印象。
    </p>


    <h3 id="不要问有人懂xxx吗">不要问“有人懂xxx吗？”</h3>

    <p>特别是在QQ群里常有人犯这样的错误，自觉很礼貌，还怪别人不理他。事实上，有几个人敢说自己“懂汉语”呢？“懂”在口语中是一个很难界定的词。改为“有人用过xxx吗？”就会好一些。</p>

    <p>不过更好地方式是直接用尽量简短的语言描述清楚你的问题，这样，即使是没用过xxx的黑客，也可能凭经验从你描述的问题中看出你钻了哪个牛角尖。</p>


    <h3 id="不要急急急">不要“急急急”</h3>

    <p>“急急急”是你的事，不是黑客的，对这样的标题他们只会嗤之以鼻。如果真的“急急急”，就多花些时间用尽可能简短的标题描述清楚问题，吸引黑客的注意力。 <br> “看起来这是个又聪明又认真的小子，问题也有趣，值得帮他一把”。
    </p>


    <h3 id="避免错别字">避免错别字</h3>

    <p>在提问中出现错别字，除了少数非母语用户外，往往意味着提问者不认真。对于一个连对自己提的问题都不认真的“懒汉新手”，黑客可没兴趣去顺便当下语文老师。 <br>
      当然，非母语用户也不用特别担心，对非母语用户和错别字用户，还是挺容易区分出来的。
    </p>


    <h3 id="公共论坛中尽量不要密版主或个人">公共论坛中尽量不要“‘密’版主或个人”</h3>

    <p>在论坛或QQ群中，除非和对方非常熟悉，否则“密个人（给个人发私信）”是不礼貌的。</p>

    <p>首先，你的问题对方不一定是专家，特别是版主，有很多都是做日常管理的，你的问题很可能石沉大海，而对方也可能为没能力答复你而难过。</p>

    <p>其次，你不知道对方正在干什么，是不是很忙碌。很多人会把QQ群的消息提醒功能关掉，就是为了不被陌生人打扰，而私聊是很难提前屏蔽的 —— 除非加黑名单。</p>

    <p>最后，如果你确实很急，那么在密的时候请直接在同一个消息中描述清楚问题，不要问“在吗？”之类的，更不要边打边发，“噔噔噔”不停的弹窗。 <br>
      如果对方不回复，要明白他必然有他的理由，不要重复发或发震动，否则进了黑名单不能怪别人。
    </p>


    <h3 id="不要放地图炮">不要放地图炮</h3>

    <p>如果一个问题没人理，就多找找自己的原因，改进一下提问方式。 <br> 如果社区中真的没有热心人，那这个社区是怎么建立和维持的？ <br>
      如果动辄就放地图炮群嘲，那么不但会被踢出这个社区，在其它社区也可能被踢，大多数人的影响力可不是只限于一个社区的。
    </p>


    <h3 id="如果对方帮你查过此问题解决之后请给个回馈">如果对方帮你查过此问题，解决之后请给个回馈</h3>

    <p>黑客也有解决不了的问题。如果你通过其它途径解决了问题，请给当初帮过你的人一个回馈，说说问题的原因在哪里，如何解决的。 <br>
      即使是自己敲错符号之类的小失误，也应该说下，不要只知道爱面子，这样至少他将来可以根据这个失误去提醒别人。
    </p>

    <p>当然，如果在论坛，应该在原提问帖回帖，如果在QQ群，就在群里再重复一下当初的问题并给出解决方案，这也是新手对社区的一种贡献方式。</p>

    <p>如果把解决问题的过程发布在博客，请注意感谢下帮助过你的人并“@”对方。如果是在某人的启发下解决了问题的关键点，还应该在正文中特别提及他。 <br> 尊重知识、尊重版权才能营造出一个良好的社区氛围。
    </p>


    <h3 id="典型的坏问题和好问题">典型的坏问题和好问题</h3>

    <table class="table table-striped">
      <thead>
      <tr>
        <th>坏问题</th>
        <th>黑客怎么想</th>
        <th>好问题</th>
      </tr>
      </thead>
      <tbody>
      <tr>
        <td>我界面显示乱了</td>
        <td>这不像大问题，但可能得花十分钟问清楚，算了吧</td>
        <td>我的页面样式正常，但是应该出现变量的地方出现的都是花括号。页面图和console log见附件</td>
      </tr>
      <tr>
        <td>救命啊！</td>
        <td>这是我儿子吗？不是！继续忙我的</td>
        <td>Chrome中，页面停止响应。鼠标键盘都输入不了，关闭也不行，只能杀掉当前页，重新打开后还是这样。见<a>http://jsfiddle.net/xxx</a>。</td>
      </tr>
      <tr>
        <td>谁懂Hybrid开发？</td>
        <td>我做Hybrid三年了，越做越不敢说懂，不敢回</td>
        <td>我要开发兼容iPhone和Android手机的App，求推荐基于Angular的Hybrid开发工具和框架</td>
      </tr>
      <tr>
        <td>论坛没高手了吗？</td>
        <td>踢场子的？算了，先忙，有空了再骂他</td>
        <td>我的问题<a>http://some.url</a>一个月都没人理了，我是新人，请帮我改进下提问方式</td>
      </tr>
      </tbody>
    </table>
  </section>
</div>
